package net.lab1024.sa.admin.module.cfs.domain.form;

import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 联网设备NB类型表 新建表单
 *
 * @Author cfsjiazy
 * @Date 2025-09-15 09:35:31
 * @Copyright  
 */

@Data
public class CfsDataNbUsermonitorinfoAddForm {

    @Schema(description = "所属单位", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "所属单位 不能为空")
    private Long companyCode;

    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "设备名称 不能为空")
    private String monitorName;

    @Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "设备编码 不能为空")
    private String monitorCode;

    @Schema(description = "所属系统(字典fire_system_type)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "所属系统(字典fire_system_type) 不能为空")
    private String system;

    @Schema(description = "设备厂商（字典cfs_data_equipment_manufacturer_type）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "设备厂商（字典cfs_data_equipment_manufacturer_type） 不能为空")
    private String dockCode;

    @Schema(description = "设备类型（关联cfs_data_manufactor_device表device_code字段）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "设备类型（关联cfs_data_manufactor_device表device_code字段） 不能为空")
    private String deviceCode;

    @Schema(description = "设备型号（关联cfs_data_manufactor_device表id字段）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "设备型号（关联cfs_data_manufactor_device表id字段） 不能为空")
    private String monitorType;

    @Schema(description = "运营商（1中国电信 2中国移动 3中国联通）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "运营商（1中国电信 2中国移动 3中国联通） 不能为空")
    private String commOperator;

    @Schema(description = "通讯协议（TCP、UDP、HTTP）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "通讯协议（TCP、UDP、HTTP） 不能为空")
    private String commProtocol;

    @Schema(description = "IMEI", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "IMEI 不能为空")
    private String imei;

    @Schema(description = "iccid", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "iccid 不能为空")
    private String iccid;

    @Schema(description = "装机日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "装机日期 不能为空")
    private LocalDateTime installDate;

    @Schema(description = "安装位置", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "安装位置 不能为空")
    private String installAddress;

    @Schema(description = "入网时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "入网时间 不能为空")
    private LocalDateTime networkDate;

    @Schema(description = "服务到期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "服务到期时间 不能为空")
    private LocalDateTime servicedDate;

    @Schema(description = "运行状态（0正常 1故障 2报警）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "运行状态（0正常 1故障 2报警） 不能为空")
    private String runState;

    @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "经度 不能为空")
    private BigDecimal lng;

    @Schema(description = "纬度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "纬度 不能为空")
    private BigDecimal lat;

    @Schema(description = "所属消防网格", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "所属消防网格 不能为空")
    private Long fireGridId;

    @Schema(description = "监测的设备类型（字典cfs_data_monitor_type）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "监测的设备类型（字典cfs_data_monitor_type） 不能为空")
    private String monitoringType;

    @Schema(description = "对接app_id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "对接app_id 不能为空")
    private String appId;

    @Schema(description = "第三方数据id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "第三方数据id 不能为空")
    private String dataId;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "状态 不能为空")
    private Integer status;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "创建时间 不能为空")
    private LocalDateTime createTime;

    @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "创建人 不能为空")
    private Long createUser;

    @Schema(description = "修改时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "修改时间 不能为空")
    private LocalDateTime updateTime;

    @Schema(description = "修改人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "修改人 不能为空")
    private Long updateUser;

}